# Column Configuration
Defines site columns (fields) that can be reused across document libraries and content types.
Referenced by: SiteCfg.Columns, DocLibCfg.Columns, ContentTypeCfg.Columns.
# Overview
ColumnCfg defines a SharePoint field/column with its type, validation rules, display format, and default values. Columns are created at the site level and can be added to multiple libraries and content types.
# Applied when
Site columns are created when:
- The parent
SiteCfgis provisioned and references this column viaColumnsarray - OR a
DocLibCfgreferences this column viaColumnsarray (creates library-scoped column) - OR a
ContentTypeCfgreferences this column viaColumnsarray (adds column to content type) - Applied during site or library provisioning; columns are created before they are assigned to content types or added to libraries
- Retroactive changes to column properties (field type, validation rules) may require manual SharePoint administration or column re-creation
# Core settings
# Name
Type: string | Required: Yes
Unique name used in configuration references to identify this column.
Example: "MatterCode", "ClientName"
# Group
Type: string | Required: No
Field group for UI organization in SharePoint forms and settings.
Example: "Matter Information", "Client Details"
# Title
Type: string | Required: Yes
Display name shown in the UI and column headers.
# Description
Type: string | Required: No
Field description shown in item forms and column settings.
# FieldType
Type: enum | Required: Yes
Data type of the column. Common types: Text, Note, Integer, Number, DateTime, Choice, MultiChoice, Lookup, User, UserMulti, Boolean, Calculated, Taxonomy, Computed.
# Required
Type: bool | Required: No | Default: false
Make the field required. Users must provide a value when creating or editing items.
# EnforceUniqueValues
Type: bool | Required: No
Enforce unique values across items in the library or list. Only applies to indexed fields. When enabled, SharePoint prevents duplicate values in this column.
# DefaultValue
Type: string | Required: No
Default value for new items when created. Special behavior for Boolean fields: If this property is empty or null for a Boolean column, it is automatically set to "Yes".
# Indexed
Type: bool | Required: No
Create an index on this column for faster queries and filtering. Enable for columns frequently used in views, filters, or lookups.
# Hidden
Type: bool | Required: No | Default: false
Hide from the UI (useful for system columns that should not be edited directly by users).
# Text and number columns
# TextMaxLength
Type: int | Required: No | C#: TextMaxLength | Configurator: "MaxLength"
Maximum length for text columns. Valid range: 1–255 characters. When set, users cannot enter more than this many characters.
# Note/rich text columns
# UnlimitedLength
Type: bool | Required: No | Configurator: "Unlimited Length"
Allow unlimited text length in document libraries. When enabled, users can enter text of any length. When disabled, SharePoint enforces a limit (typically 255 characters for standard note fields).
# NumberOfLines
Type: int | Required: No | Configurator: "Number of lines"
Number of text input lines displayed in forms. Controls the height of the text input box. Typical values: 3–10 for short notes, 10–20 for rich text.
# Lookup columns
# LookupListName
Type: string | Required: Conditional | Configurator: "ListName"
Name of the source list for lookup values. Required when FieldType = Lookup. The lookup column retrieves values from this list. The list must exist in the same site or a specified site.
Example: "Clients", "MatterTypes"
# LookupFieldName
Type: string | Required: Conditional | Configurator: "FieldName"
Field in the source list to display or link to. Required when FieldType = Lookup. Must match a column name in the list specified by LookupListName. This is the field value shown to users.
Example: "Title", "ClientCode"
# LookupAllowMultipleValues
Type: bool | Required: No | Default: false | Configurator: "AllowMultipleValues"
Allow multiple selections from the lookup list. When enabled, users can select multiple items. When disabled, users can select only one item.
# Calculated columns
# CalculatedFormula
Type: string | Required: Conditional | Configurator: "Formula"
Formula expression for calculated fields. Required when FieldType = Calculated. Uses SharePoint field formula syntax.
Example: =[Field1]+[Field2], =UPPER([Title]), =TODAY()
# CalculatedOutputType
Type: enum | Required: No | Configurator: "Output Type"
Output type of the calculated result. Valid values: Text, Number, Currency, DateTime, Boolean. Determines how the result is displayed and formatted.
# DefaultFormula
Type: string | Required: No
Alternative formula name or expression. Rarely used; CalculatedFormula is the standard approach.
# Computed columns
FieldType: Computed references a SharePoint-managed built-in field (e.g., FileSizeDisplay, FileLeafRef). These fields are created and maintained by SharePoint itself — provisioning does not create or modify them.
During provisioning, the field is looked up in the SharePoint list at runtime. If the field does not exist in the list, provisioning throws an InvalidOperationException.
Example:
{
"Name": "FileSizeDisplay",
"FieldType": "Computed"
}
Note: Properties such as
Required,DefaultValue, and validation rules have no effect on Computed columns.
# Taxonomy/managed metadata columns
# TaxonomyTermset
Type: string | Required: Conditional | Configurator: "Termset"
Termset name for managed metadata columns. Required when FieldType = Taxonomy. Must reference an existing term set in the managed metadata service.
Example: "Locations", "Document Classification"
# TaxonomyTermGroup
Type: string | Required: Conditional | Configurator: "Termgroup"
Term group name that contains the termset. Required when FieldType = Taxonomy. Provides the scope for the termset lookup.
# DateTime columns
# DateTimeFriendlyDisplayFormat
Type: enum | Required: No | Configurator: "Friendly Display Format"
Display format for relative date display. Valid values: Unspecified, Relative, Standard.
Unspecified— No special formattingRelative— Displays as relative time (e.g., "2 days ago", "3 weeks from now")Standard— Standard date format
# DateTimeFieldFormatType
Type: enum | Required: No | Configurator: "Display Format"
Format type for the datetime field. Valid values: DateTime (date and time), DateOnly (date only).
Note: This affects how values are displayed and input in forms.
# Related
- Content Type Configuration — add columns to content types
- Site Configuration — add columns to sites
- Document Library Configuration — add columns to libraries